home *** CD-ROM | disk | FTP | other *** search
/ The Atari Compendium / The Atari Compendium (Toad Computers) (1994).iso / files / prgtools / cli / cli_1_0u.lzh / COMMAND.TEX < prev    next >
Encoding:
Text File  |  1991-02-27  |  58.7 KB  |  1,531 lines

  1. % SUBJECT: OS-CLI Doku, 27.2.1991 (Version 1.0u)
  2. %
  3. % Zeichensatzwahl:
  4. % \rm : computer modern roman style,
  5. %       normaler Text
  6. % \sf : sans serif style,
  7. %       Environmentvariablen sowie Produktbezeichnungen (z.B. ST)
  8. % \tt : type writer style,
  9. %       Pfade, Dateinamen, Beispiele (eingegeben Befehle, Ausgaben)
  10. % \em : emphasized bzw. italics style,
  11. %       Variablen in Syntaxbeschreibung, sowie allg. hervorheben
  12.  
  13. \documentstyle[titlepage,german]{article}
  14. \pagestyle{headings}
  15. \parindent0em \parskip2ex plus0.5ex minus0.5ex
  16. \newcommand{\bsl}{$\backslash$}
  17.  
  18. %\sloppy
  19.  
  20. % ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  21. \begin{document}
  22.  
  23. % ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  24. \title{
  25.      Der Kommandozeileninterpreter\\
  26.      Version 1.0u}
  27. \author{
  28.      Oliver Scholz}
  29. \date{
  30.      Februar 1991}
  31. \maketitle
  32. \newpage
  33.  
  34. % ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  35. \pagenumbering{roman}
  36. \tableofcontents\clearpage
  37. \newpage
  38. \pagenumbering{arabic}
  39.  
  40. % ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  41. \section{In eigener Sache}
  42. Lieber Benutzerin, lieber Benutzer!
  43.  
  44. Das vorliegende Programm ist {\em SHAREWARE}. Das bedeutet, da\ss\ es
  45. weiterkopiert werden kann und soll! Man kann es allen seinen Freunden
  46. weitergeben und die wieder ihren Freunden u.s.w.
  47. Es d"urfen aber nur {\bf alle} Dateien komplett kopiert werden, d.h.
  48.  
  49. \begin{tabular}{l|l}
  50. {\tt COMMAND.PRG} &  Ausf"uhrbare Programmdatei\\
  51. {\tt COMMAND.TEX} &  \LaTeX{}-Version dieser Anleitung\\
  52. {\tt COMMAND.TXT} &  ASCII-Version dieser Anleitung\\
  53. {\tt REVISION.TXT} & Entwicklungsgeschichte\\
  54. \end{tabular}
  55.  
  56. Es darf in den Dateien nichts ver"andert werden! Ausgenommen sind
  57. Layout\-"anderungen beim Ausdruck der Textdateien. Auf Wunsch kann bei
  58. mir auch noch eine englische "Ubersetzung der Textdateien bestellt
  59. werden.
  60.  
  61. Wer das Programm benutzt sollte mir 30~DM "uberweisen, als Anerkennung
  62. f"ur meine M"uhe. Damit werdet ihr automatisch registrierter Benutzer
  63. und k"onnt euch bei auftretenden Problemen und Fragen schriftlich an mich
  64. wenden. Registrierte Benutzer bekommen jederzeit gegen eine formatierte
  65. 3,5" Diskette und einen selbstadressierten, frankierten R"uckumschlag
  66. die neueste Version.
  67.  
  68. Ohne mein (schriftliches) Einverst"andnis darf das Programm nicht in einen
  69. Public Domain Vetrieb aufgenommen werden. Denn wer f"ur ein Programm schon
  70. 10--15 DM plus Porto und Nachnahme bezahlt hat, sieht nicht ein, sich auch
  71. noch f"ur 30 DM registrieren zu lassen.
  72.  
  73. Dieses Programm ist im Laufe von eineinhalb Jahren 
  74. entstanden und ich habe unz"ahlige Stunden daran gearbeitet.
  75. Darum m"ochte ich darum bitten, mir obigen Betrag auch zu "uberweisen,
  76. wenn ihr mit diesem Programm arbeitet.
  77.  
  78. Das Programm ist zu 100\% in Assembler geschrieben. Das erkl"art
  79. seine Geschwindigkeit, aber auch seine Kompaktheit. Schlie\ss{}lich sind
  80. "uber 60 Befehle eingebaut, d.h.~es fallen bei diesen Befehlen keine Ladezeiten
  81. an.
  82. Und nicht jeder hat 2 oder 4 Megabytes und will davon "uber 100 KB f"ur eine
  83. riesige, langsame Shell verbraten, nur weil diese in C geschrieben ist und sich
  84. enorme Hashtables anlegt. Der CLI ist unter 32K lang und reserviert sich auch
  85. nicht viel mehr. Nur einige KBytes f"ur die Alias und Environments.
  86.  
  87. Mein Dank gilt hier Marcus, der diese Anleitung ge\TeX{}t und auch sonst
  88. mit konstruktiver Kritik nicht gespart hat.
  89.  
  90. Den Assembler, mit dem der CLI geschrieben ist, habe ich auch selbst
  91. entwickelt, und wenn das Sharewarekonzept klappt, mache ich den auch zu
  92. Shareware. Also noch ein Grund, sich registrieren zu lassen.
  93. Helft mit, das Sharewarekonzept zu einem Erfolg zu machen, wie in den USA.
  94.  
  95. Meine Bankverbindung:
  96.  
  97. \begin{center}      
  98.  \parbox{5cm}{Postgiroamt 2000 Hamburg\\
  99.               Bankleitzahl 200 100 20\\
  100.               Kontonummer 3457 42-203}
  101. \end{center}
  102.  
  103. Vergesst bitte nicht, euren Namen, Adresse und das Stichwort CLI mit auf
  104. das "Uberweisungsformular zu schreiben, sonst wei\ss\ ich nicht, woher das
  105. Geld gekommen ist.
  106.  
  107. Ihr k"onnt das Geld auch in einen Umschlag stecken:
  108.  
  109. \begin{center}      
  110.  \parbox{5cm}{Oliver Scholz\\
  111.               Garstedter Weg 226\\
  112.               Postfach 61 02 29\\
  113.               2000 Hamburg 61}
  114. \end{center}
  115.  
  116. Meine Telefonnummer gebe ich am besten gar nicht erst an, weil ich ohnehin
  117. fast nie zuhause bin, und auch nicht morgens um sieben schon von den ersten
  118. Leuten aus dem Bett geholt werden m"ochte. Bitte versteht das.
  119.  
  120. Fast h"atte ich's vergessen:
  121.  
  122. {\sc Disclaimer / Haftungsausschluss}:
  123.  
  124. {\sf
  125.   Das Programm wurde sorgf"altig entwickelt und getestet. Trotzdem sind, wie
  126.   es bei Software "ublich ist, Fehler nicht auszuschlie\ss{}en. Der Autor
  127.   sieht sich daher gezwungen, darauf hinzuweisen, da\ss\ weder Garantie f"ur
  128.   das fehlerfreie Funktionieren dieses Programmes "ubernommen werden kann,
  129.   noch f"ur irgendwelche Sch"aden, die aus Fehlern im Programm oder durch
  130.   Fehlbedienung entstehen, gehaftet wird.
  131. }
  132.  
  133. Mit dem Starten des Programmes werden diese Bedingungen anerkannt.
  134. So, und jetzt viel Spass mit dem Programm.
  135.  
  136. Hamburg im Dezember 1990 \hfill {\sl Oliver Scholz}
  137.  
  138. \newpage
  139.  
  140. % ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  141. \section{Einleitung}
  142. Neben dem {\sf GEM}-Desktop stellt ein Kommandozeileninterpreter (im folgenden
  143. kurz CLI, f"ur {\em command line interpreter}\/ genannt) eine weitere
  144. M"oglichkeit dar, mit dem {\sf ST} zu kommunizieren. Hierbei werden die
  145. Kommandos nicht mit der Maus angew"ahlt, sondern die Befehle mit Namen
  146. eingegeben.
  147.  
  148. Es werden dabei zwei verschiedene Arten von Befehlen unterschieden: 
  149. Residente und nichtresidente Befehle. Die residenten Befehle sind im CLI 
  150. eingebaut, d.h.~sie stehen nach dem Laden unmittelbar zur Verf"ugung.
  151. Nichtresidente Befehle dagegen befinden sich auf Diskette bzw.~Festplatte und 
  152. werden erst von dort geladen. Der Vorteil dabei ist, da\ss\ Befehle, die der
  153. CLI nicht enth"alt, selbst geschrieben werden k"onnen, und somit der CLI quasi 
  154. erweitert werden kann.
  155. Ein weiterer Vorteil eines CLI ist die M"oglichkeit Batchdateien abzuarbeiten, 
  156. d.h.~festgelegte Kommandofolgen mit einem Befehl abarbeiten zu lassen.
  157.  
  158. Die Benutzung der, vom {\sf TOS} unterst"utzten, Environmentvariablen ist
  159. beim Arbeiten mit dem Desktop leider nicht m"oglich. Dies ist schade, denn
  160. sie bieten dem Benutzer u.a.~die M"oglichkeit seine pers"onliche
  161. Benutzerumgebung besser zu strukturieren. Ein weiterer Vorteil eines CLI ist
  162. also, da\ss\ eben diese Environmentvariablen problemlos definier- und
  163. ansprechbar sind.
  164.  
  165. \newpage
  166.  
  167. % ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  168. \section{Das Arbeiten mit dem CLI}
  169. Auch wenn zwischen residenten und nichtresidenten Befehlen unterschieden wird, 
  170. ist dieser Unterschied f"ur den Benutzer kaum merklich. Erst wenn die Diskette 
  171. bzw. Festplatte anl"auft, merkt man, da\ss\ ein Befehl nichtresident ist.
  172. Nach dem Starten meldet sich der CLI mit dem sogenannten Prompt, der z.B.~so
  173. aussehen k"onnte: `\verb"C:>"'.
  174. Wann immer der CLI einen Prompt ausgibt, ist er bereit einen Befehl 
  175. entgegenzunehmen. Dieser Prompt kann aber auch umdefiniert werden. Siehe
  176. dazu Abschnitt \ref{prompt}.
  177.  
  178. Eine Kommandozeile besteht aus einem Befehl und optionalen Parametern, die 
  179. voneinander durch ein oder mehrere Leerzeichen getrennt sind. Zun"achst testet 
  180. der CLI, ob es sich bei dem Befehl um einen residenten Befehl handelt. Ist das 
  181. der Fall, so wird der Befehl sofort ausgef"uhrt. Handelt es sich jedoch um
  182. einen nicht eingebauten Befehl, so wird auf dem aktuellen Verzeichnis nach
  183. einer Datei gleichen Namens gesucht, und diese geladen.
  184. Wurde keine Extension angegeben, so versucht der CLI zun"achst die Extension 
  185. {\tt .PRG}, dann der Reihe nach {\tt .TOS}, {\tt .TTP}, {\tt .APP} und
  186. schlie\ss{}lich {\tt .BAT}.
  187. Hatte keiner dieser Versuche Erfolg, so wird die Meldung
  188. \begin{verbatim}
  189. Command or File not found!
  190. \end{verbatim}
  191. ausgegeben. Ist die Environmentvariable {\sf PATH} vorhanden, so werden auch die
  192. darin angegebenen Pfade durchsucht, bevor die Meldung ausgegeben wird.
  193. Gro\ss - /Kleinschreibung spielt bei der Befehlseingabe "ubrigens keine Rolle.
  194.  
  195. % ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  196.  
  197. \subsubsection{Die HOME--Abk"urzung in Pfaden}
  198. Das Tilde--Zeichen (`$\sim$') in einem Pfad steht f"ur das Homedirectory
  199. des jeweiligen Benutzers. Der CLI ersetzt dieses Zeichen also durch den
  200. Inhalt der Environmentvariablen {\sf HOME}. Zum Beispiel:
  201.  
  202. \begin{verbatim}
  203.   cp tst.txt ~\txt\
  204. \end{verbatim}
  205.  
  206. w"are gleichbedeutend mit
  207.  
  208. \begin{verbatim}
  209.   cp tst.txt $HOME\txt\
  210. \end{verbatim}
  211.  
  212. oder, wenn {\sf HOME}$=$e:\bsl usr\bsl olav\bsl , auch
  213.  
  214. \begin{verbatim}
  215.   cp tst.txt e:\usr\olav\txt\
  216. \end{verbatim}
  217.  
  218.  
  219. % ~~~~~~~~~~~~~~~
  220. \subsection{Wildcards und Dateinamen unter {\sf TOS}}\label{wildcards}
  221. Wenn im folgenden von {\em wildcards}\/ die Rede ist, so ist damit
  222. die M"oglichkeit gemeint, Dateinamen unvollst"andig zu spezifizieren.
  223. Einzelne Zeichen in Dateinamen k"onnen gegen ein Fragezeichen (`{\tt ?}')
  224. und ganze Zeichenketten durch einen Stern (`\verb"*"') ersetzt werden.
  225. Dabei besteht ein Dateiname aus 8~Zeichen plus 3~optionalen, durch einen
  226. Punkt getrennten Zeichen, auch Extension genannt. Also beispielsweise
  227. {\tt filename.ext}.
  228.  
  229. Es ist jedoch zu beachten, wie die beiden Wildcard-Zeichen von {\sf TOS}
  230. interpretiert werden. Wird in einem Dateinamen ein Stern verwendet, so
  231. f"ullt {\sf TOS} bis zum Punkt mit Fragezeichen auf, d.h.~alle Zeichen
  232. nach einem Stern bis zum Punkt werden ignoriert!
  233.  
  234. Besondere Vorsicht bei der Verwendung von Wildcards ist also bei 
  235. L"osch/-operationen geboten. Fatale Folgen k"onnte folgende Anweisung haben:
  236. \begin{verbatim}
  237.   rm *abc.*
  238. \end{verbatim}
  239. {\sf TOS} interpretiert dies als
  240. \begin{verbatim}
  241.   rm *.*
  242. \end{verbatim}
  243. Was das bedeuten kann, ist wohl jedem klar. Also Vorsicht!!!
  244.  
  245.  
  246. % ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  247. \section{Batchdateien}
  248. Eine Batchdatei dient dazu, eine oft benutzte Befehlsfolge zu automatisieren. 
  249. Soll z.B.~die Befehlsfolge 
  250.  
  251. \begin{verbatim}
  252.   date
  253.   time
  254. \end{verbatim}
  255.  
  256. zusammen ausgef"uhrt werden, so 
  257. schreibt man mit einem Editor eine Textdatei, die in der ersten Zeile
  258. {\tt date} und in der zweiten Zeile {\tt time} enth"alt. Nennt man diese 
  259. Datei z.B.~{\tt DATETIME.BAT}, so wird bei Eingabe von
  260. {\tt datetime.bat} \linebreak automatisch die 
  261. Befehlsfolge {\tt date time} ausgef"uhrt. Es ist auch m"oglich, einer 
  262. Batchdatei max.~10 Parameter zu "ubergeben. Die Parameter werden in der 
  263. Kommandozeile durch Leerzeichen voneinander getrennt. Der erste Parameter 
  264. hei\ss{}t \%1, der zweite \%2, u.s.w.~und der zehnte \%0. Taucht in der 
  265. Batchdatei dann \%1 auf, so wird \%1 durch den Parameter in der
  266. Kommandozeile ersetzt. 
  267. Soll das `\%' dargestellt werden, so wird es einfach verdoppelt: \%\%. Lautet 
  268. die Batchdatei {\tt TEST.BAT} etwa: {\tt echo \%1}, so bewirkt die Kommandozeile
  269. {\tt test Hallo}, da\ss\ auf dem Bildschirm `{\tt Hallo}' ausgegeben wird.
  270.  
  271. Mit Batchdateien lassen sich z.B.~Compiler- /Linkerl"aufe automatisieren:
  272.  
  273. \begin{verbatim}
  274.   compiler %1.c %1.o
  275.   linker %1.prg=startup,%1.o,lib
  276. \end{verbatim}
  277.  
  278. Wird diese Batchdatei {\tt C.BAT} genannt, so bewirkt {\tt c test}, da\ss\ die 
  279. Befehlsfolge
  280.  
  281. \begin{verbatim}
  282.   compiler test.c test.s
  283.   linker test.prg=startup,test.o,lib
  284. \end{verbatim}
  285.  
  286. abgearbeitet wird. Als besonderer Clou kann der CLI auch selbst eine 
  287. Kommandozeile "ubernehmen. 
  288. Diese kann dann z.B.~der Name einer Batchdatei sein, die nach dem Starten 
  289. des CLI automatisch abgearbeitet wird. Damit ist es vom Desktop aus
  290. z.B.~m"oglich, {\tt COMMAND.PRG} als Anwendung anzumelden, und zwar mit der
  291. Extension {\tt .BAT}. Wird dann {\tt C.BAT} doppelt angeklickt, so startet der
  292. CLI automatisch und arbeitet die entsprechende Batchdatei ab.
  293.  
  294. Wird keine Kommandozeile angegeben, so sucht der CLI nach einer Batchdatei 
  295. {\tt AUTOEXEC.BAT}, die, sofern vorhanden, ebenfalls automatisch abgearbeitet 
  296. wird. In dieser Datei kann man den CLI nach eigenen W"unschen konfigurieren.
  297.  
  298. Des weiteren ist es m"oglich, rekursive Batchdateien zu verwenden, d.h.~eine 
  299. Batchdatei kann eine weitere Batchdatei aufrufen, aber maximal f"unf Mal.
  300. Dabei kann auf Parameter "ubergeordneter Batchdateien zugegriffen werden.
  301.  
  302. % ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  303. \section{Ein- /Ausgabe Umleitung}
  304. Die Ausgabe aller eingebauten Befehle erfolgt normalerweise auf den 
  305. Bildschirm, aber es kann manchmal gew"unscht sein, Ausgaben auf den Drucker 
  306. oder in eine Datei auszugeben.
  307.  
  308. Dazu wird an das Ende der eigentlichen Kommandozeile `\verb">"{\em dateiname\/}'
  309. angef"ugt. 
  310. Damit wird eine Datei {\em dateiname\/} angelegt und die Ausgabe des Befehls in 
  311. diese Datei geschrieben. Als Dateiname sind hier auch {\tt AUX:} und {\tt PRN:} 
  312. zul"assig. Damit kann die Ausgabe auch auf den Drucker bzw.~die serielle 
  313. Schnittstelle umgelenkt werden. Ist die Datei {\em dateiname}\/ schon vorhanden,
  314. so wird sie gel"oscht, und eine neue Datei er"offnet. Soll an eine bestehende 
  315. Datei angeh"angt werden, so wird statt `\verb">"{\em dateiname}' der Befehl 
  316. `\verb">>"{\em dateiname\/}' an die Kommandozeile angeh"angt.
  317.  
  318. Es ist auch m"oglich die Eingabe von einer Datei vorzunehmen. Dazu wird an die 
  319. Kommandozeile `\verb"<"{\em dateiname}' angeh"angt. Hier ist wieder auch
  320. {\tt AUX:} zugelassen, nicht aber {\tt PRN:}.
  321.  
  322. Benutzt ein Programm die Fehlerausgabe (stderr), so kann auch diese
  323. umgeleitet werden, und zwar mit `\verb"2>"{\em dateiname}' bzw. `\verb"2>>"{\em dateiname}'.
  324. Hier sind ebenfalls {\tt AUX:}, {\tt PRN:} und {\tt CON:} zul"assig.
  325.  
  326. Allerdings funktioniert die I/O-Umlenkung nicht bei allen {\sf TOS}-Versionen 
  327. fehlerfrei. Erst ab {\sf TOS} Version 1.4 klappt alles fehlerfrei.
  328.  
  329. % ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  330. \section{Pipes}
  331.  
  332. Eine Pipe ist ein sehr angenehmes Mittel zur Kommunikation zwischen
  333. verschiedenen Programmen. Oft ist es gew"unscht, die Ausgabe eines Programmes
  334. mit einem anderen Programm weiterzuverarbeiten. Eine Pipe gibt die Ausgabe,
  335. die ein Programm oder Befehl auf den Bildschirm (eigentlich `stdout')
  336. schreiben will, an ein anderes Programm weiter, das diese Ausgabe als
  337. Eingabe akzeptiert. Eine Pipe ist also eine Art gleichzeitige Ausgabe- und
  338. Eingabeumlenkung mit verschiedenen Programmen.
  339. Das Zeichen, das diese Umlenkung vornimmt, ist der senkrechte Strich (`\verb"|"').
  340. Soll z.B.~die Fehlerliste eines C-Compilers auf eine Datei umgelenkt werden,
  341. so kann diese recht lang werden, und meist h"angt ein Gro\ss{}teil der Fehler
  342. vom ersten Fehler ab. So kann man die Ausgabe durch eine Pipe an
  343. HEAD schicken, der nur die ersten paar Fehlermeldungen ausgibt:
  344.  
  345. \begin{verbatim}
  346.   compiler | head -25
  347. \end{verbatim}
  348.  
  349. So schreibt der Compiler nur noch die ersten 25 Fehlermeldungen auf den
  350. Bildschirm. Man kann diese Ausgabe nun weiter in eine Datei umlenken:
  351.  
  352. \begin{verbatim}
  353.   compiler | head -25 >errors
  354. \end{verbatim}
  355.  
  356. Nun enth"alt `errors' die ersten 25 Fehlermeldungen. Sollen die Fehlermeldungen
  357. nur seitenweise ausgegeben werden und der Compiler h"alt nicht an, so kann
  358. die Ausgabe an MORE geschickt werden:
  359.  
  360. \begin{verbatim}
  361.   compiler | more
  362. \end{verbatim}
  363.  
  364. Nun erfolgt die Ausgabe seitenweise, als h"atte man:
  365.  
  366. \begin{verbatim}
  367.   compiler >temp
  368.   more temp
  369.   del temp
  370. \end{verbatim}
  371.  
  372. eingegeben. Damit diese Umleitung funktioniert mu\ss\ die Ausgabe die in eine
  373. Pipe geschickt werden soll nat"urlich auch umlenkbar sein, d.h.~das Programm
  374. mu\ss\ seine Ausgaben auf `stdout' machen.
  375.  
  376. Sollen mehrere Befehle in einer Kommandozeile ausgef"uhrt werden, ohne da\ss\
  377. eine Pipe ge"offnet wird, so m"ussen diese jeweils durch Semikolon getrennt
  378. werden.
  379.   
  380. % ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  381. \section{Die Befehls Stopuhr}
  382.  
  383. Wird eine Kommandozeile mit einem {\em Klammeraffen\/} (`\verb"@"') begonnen,
  384. so wird eine interne Stopuhr gestartet und die Zeit zur Ausf"uhrung der Zeile
  385. gestoppt. So kann bequem bestimmt werden, wie lange z.B.~ein
  386. Compiliervorgang dauert.
  387.  
  388. % ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  389. \section{Die History-Funktion}
  390. Der CLI merkt sich immer die letzten 20 Befehlszeilen, und diese k"onnen "uber 
  391. die Cursortasten (auf/ab) wieder abgerufen werden. Das ist sinnvoll, wenn man 
  392. einen zuvor benutzten Befehl noch einmal benutzen m"ochte, ohne ihn neu 
  393. eingeben zu m"ussen.
  394.  
  395. Diese Befehle k"onnen auch ggf.~editiert werden. Eine weitere M"oglichkeit,
  396. die letzten Befehle zu sehen und 
  397. auszuf"uhren, ist der Befehl HISTORY. Damit werden die letzten Befehle 
  398. ausgegeben und jeweils mit einer Nummer versehen. Mittels Ausrufezeichen 
  399. k"onnen diese Befehle nun angesprochen werden, und zwar auf zwei verschiedene
  400. Arten:
  401. \begin{enumerate}
  402.  
  403.  \item
  404.  `{\tt !5}', w"urde z.B.~den 5.~Befehl ausf"uhren, der nach Starten des CLIs
  405.  eingegeben wurde, sofern sich dieser Befehl noch im History-Puffer befindet.
  406.  
  407.  \item
  408.  `{\tt !cc}' w"urde den letzten Befehl, der mit `cc' beginnt und
  409.  sich noch im History-Puffer befindet, ausf"uhren.
  410.  
  411. \end{enumerate}
  412.  
  413. % ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  414. \section{Editieren der Kommandozeile}
  415. Eingegebene Zeichen werden dort eingef"ugt, wo sich der Cursor befindet. Sind 
  416. noch Zeichen rechts vom Cursor, so werden diese Zeichen nach rechts 
  417. verschoben. Die Befehle, die zum Editieren der Kommandozeile zur Verf"ugung
  418. stehen, zeigt Tabelle \ref{cliedit}. Eine genauere Erl"auterung verlangt
  419. wohl die Dateinamensuche:
  420.  
  421. Es ist manchmal ganz hilfreich, dem Rechner die Suche nach einem
  422. komplizierten Dateinamen zu "uberlassen. Dazu gibt man eine unvollst"andige
  423. Dateinamenspezifikation an und dr"uckt entweder die Insert-Taste oder
  424. die Tastenkombination Ctrl-U ({\em unknown\/}). Nun durchsucht der CLI
  425. das aktuelle Verzeichnis nach dem ersten Eintrag, der auf die angegebene
  426. Spezifikation pa\ss{}t und gibt ihn auf dem Schirm aus. Ist dies nicht der
  427. gew"unschte Eintrag, so kann man die Suche mit der Tastenkombination
  428. Ctrl-O ({\em other\/}) fortf"uhren. Kann kein weiterer Eintrag mehr
  429. gefunden werden, so bleibt der letzte gefundene Eintrag in der Kommandozeile
  430. stehen.
  431.  
  432. Da das links vom Cursor stehende Wort als Suchspezifikation benutzt
  433. wird, bewirkt zweimaliges Dr"ucken der Insert-Taste bzw.~Ctrl-U, da\ss\ der
  434. erste gefundene Dateiname mit dem zweiten Dr"ucken als, nun vollst"andige,
  435. Suchspezifikation interpretiert wird. Dadurch wird i.d.R.~bei weiterer
  436. Suche mittels Ctrl-O kein anderer Dateiname mehr gefunden.
  437.  
  438. Folgendes Beispiel soll diese sinnvollen Befehle verdeutlichen:
  439.  
  440. Oft m"ochte man eine Datei l"oschen, will aber nicht den gesamten Namen
  441. eingeben. Angenommen, das aktuelle Verzeichnis enth"alt die folgenden Dateien:
  442. \begin{verbatim}
  443. BLAH.TXT
  444. BLAH1.TXT
  445. BLAH2.TXT
  446. \end{verbatim}
  447. Gesetzt den Fall, man m"ochte {\tt BLAH1.TXT} l"oschen. Nun reicht es
  448. beispielsweise aus, wenn man folgende Kommandozeile eingibt (ohne die
  449. {\sf RETURN} Taste zu bet"atigen):
  450. \begin{verbatim}
  451. del bl
  452. \end{verbatim}
  453. Dr"uckt man nun die Insert-Taste (oder Ctrl-U), so w"urde die unvollst"andige
  454. Spezifikation {\tt bl} durch {\tt BLAH.TXT} ersetzt werden.
  455. (In diesem Fall w"are ein Leerzeichen als Spezifikation auch ausreichend
  456. gewesen) F"uhrt man die Suche nun mit Ctrl-O fort, so wird als n"achstes
  457. {\tt BLAH.TXT} durch die gesuchte Datei {\tt BLAH1.TXT} ersetzt und man
  458. kann die erw"unschte Kommandozeile durch Bet"atigung der {\sf RETURN} Taste
  459. an den CLI weitergeben. "Ahnlich l"a\ss{}t sich diese Suche auch bei
  460. anderen Befehlen anwenden. Auf vielfachen Wunsch wird der gefundene Dateiname
  461. ab Version 1.0t in Kleinbuchstaben eingef"ugt.
  462.  
  463. \begin{table}
  464. \begin{center}
  465. \renewcommand{\arraystretch}{2}
  466. \begin{tabular}{|l|l|}\hline
  467.  Taste         & Wirkung\\ \hline
  468.  Pfeil links   & bewegt den Cursor nach links\\
  469.  Pfeil rechts  & bewegt den Cursor nach rechts\\
  470.  Backspace     & l"oscht das Zeichen links vom Cursor\\
  471.  Delete        & l"oscht das Zeichen unter dem Cursor\\
  472.  Insert        & Starte Dateinamensuche\\
  473.  Clr/Home      & l"oscht die aktuelle Kommandozeile\\
  474.  Ctrl-K        & l"oscht bis zum Ende der Kommandozeile\\
  475.  Ctrl-W        & l"oscht das n"achste Wort\\
  476.  Ctrl-A        & springt an den Anfang der Kommandozeile\\
  477.  Ctrl-E        & springt an das Ende der Kommandozeile\\
  478.  Ctrl-U        & wie Insert ({\em unknown\/})\\
  479.  Ctrl-O        & N"achster Eintrag bei Dateinamensuche ({\em other\/})\\
  480.  Ctrl-D        & wie Delete\\
  481.  Ctrl-X        & wie Clr/Home\\
  482.  Ctrl-B        & wie Pfeil links ({\em backwards\/})\\
  483.  Ctrl-F        & wie Pfeil rechts ({\em forwards\/})\\
  484.  Ctrl-P        & wie Pfeil hoch ({\em previous\/})\\
  485.  Ctrl-N        & wie Pfeil runter ({\em next\/})\\ \hline
  486. \end{tabular}
  487. \renewcommand{\arraystretch}{1}
  488. \end{center} \caption{\label{cliedit} Befehle zum Editieren der Kommandozeile}
  489. \end{table}
  490. \pagebreak
  491.  
  492. % ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  493. \section{Environmentvariablen}
  494. Das Betriebssystem {\sf TOS} erm"oglicht es, sogenannte Environmentvariablen zu 
  495. "ubergeben. In diesen Variablen k"onnen z.B.~Suchpfade oder andere 
  496. Systemeinstellungen gespeichert werden. So kann bei manchen C-Compilern 
  497. festgelegt werden, wo sich die Include-Dateien befinden.
  498. Eine Environmentvariable wird definiert, indem ihr ein neuer Inhalt 
  499. zugewiesen wird. Ist sie schon vorhanden, wird der vorhandene Inhalt gel"oscht 
  500. und durch den neuen Inhalt ersetzt.
  501.  
  502. Nach dem Starten existiert in der Regel nur eine Variable, n"amlich
  503. {\sf PATH}. Diese Variable legt fest, wo der CLI nichtresidente Befehle
  504. sucht, wenn er sie im aktuellen Verzeichnis nicht findet. Der CLI legt nun
  505. zu dieser vom {\sf TOS} belegten Variable einige weitere Variablen 
  506. an, und zwar {\sf HOME}, {\sf CWD}, {\sf STATUS}, {\sf DATE}, {\sf TIME} und
  507. u.U.~{\sf USERNAME} und {\sf USER}.
  508.  
  509. In {\sf HOME} wird das Verzeichnis vermerkt, in dem der CLI gestartet wurde.
  510. In {\sf CWD} befindet sich immer das aktuelle Verzeichnis
  511. ({\em current working directory}\/), und in {\sf STATUS} wird der Exit-Code
  512. des letzten gestarteten Programmes vermerkt.
  513. {\tt STATUS=\ -33} z.B.~bedeutet, da\ss\ die angegebene Datei nicht 
  514. gefunden wurde. {\sf DATE} und {\sf TIME} enthalten nach Aufruf der
  515. Befehle DATE bzw.~TIME unter Angabe der \mbox{`-s'} Option, das Systemdatum bzw.~die
  516. Systemzeit zum Zeitpunkt des Aufrufes.
  517.  
  518. {\sf USER} wird von der LOGIN-Funktion angelegt und in Abschnitt \ref{login}
  519. erl"autert.
  520. Es ist nun praktisch, alle ausf"uhrbaren externen Befehle in einen Ordner zu 
  521. kopieren, und dem CLI diesen Pfad mitzuteilen. Befindet sich dieser Ordner 
  522. nun z.B.~im Wurzelverzeichnis von Laufwerk {\tt C:} und hei\ss{}t 
  523. {\tt BIN}, so bewirkt
  524.  
  525. \begin{verbatim}
  526.   PATH=C:\,C:\BIN\
  527. \end{verbatim}
  528.  
  529. da\ss\ nichtresidente Befehle zun"achst im aktuellen Verzeichnis, dann im 
  530. Wurzelverzeichnis von {\tt C:} und dann im Ordner {\tt BIN} auf Laufwerk
  531. {\tt C:} gesucht wird. Bei der {\sf PATH} Variable k"onnen auch mehrere Pfade
  532. angegeben werden, diese m"ussen dann durch Kommata getrennt werden.
  533. Variablen k"onnen aber auch in Befehlen verwendet werden. Um den Inhalt einer 
  534. Variablen zu benutzen, wird ihr ein Dollar-Zeichen (`\$') vorangestellt, mit
  535.  
  536. \begin{verbatim}
  537.   TEMP=$CWD
  538. \end{verbatim}
  539.  
  540. speichert man das aktuelle Verzeichnis in der Variablen {\sf TEMP} ab.
  541. Zu einem sp"ateren Zeitpunkt kann dann mit 
  542.  
  543. \begin{verbatim}
  544.   cd $TEMP
  545. \end{verbatim}
  546.  
  547. wieder in dieses Verzeichnis gelangen. (Eine einfachere M"oglichkeit, sich
  548. ein Directory zu merken, bieten die Befehle PUSHD/POPD).
  549.  
  550. Weitere M"oglichkeiten bieten auch die Befehle PRINTENV, SETENV und ADDENV.
  551.  
  552. Das Plus-Zeichen (`$+$') erm"oglicht es, mit diversen Befehlen auf
  553. konkatenierte Environmentvariablen zuzugreifen. Ein Beispiel sollte
  554. erkl"aren, was damit gemeint ist:
  555.  
  556. \begin{verbatim}
  557.   del $HOME+$MYFILE
  558. \end{verbatim}
  559.  
  560. l"oscht die Datei, die in {\sf MYFILE} enthalten ist, auf dem Pfad, der in
  561. HOME steht. D.h., die Inhalte der Variablen {\sf HOME} und {\sf MYFILE} werden
  562. aneinandergeh"angt und von der Kommandozeile "ubernommen.
  563.  
  564. % ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  565. \section{Benutzung des CLI durch Programme}
  566. Der CLI unterst"utzt auch die {\sf GEMDOS}-Variable {\sf \_shell\_p} bei
  567. Adresse {\sf \$4F6}, hexadezimal.
  568. Dadurch wird es m"oglich, da\ss\ ein Programm das vom CLI aufgerufen wurde,
  569. dem CLI eine Kommandozeile zur Ausf"uhrung "ubergibt. Ein Beispiel daf"ur
  570. ist der {\sf system()} Befehl einiger C-Compiler. Schreibt man z.B.~ein
  571. MAKE-Programm so mu\ss\ man nicht den RM Befehl abfangen, sondern schickt
  572. ihn einfach mittels {\sf system()} an den CLI, und l"a\ss t ihn dort
  573. ausf"uhren.
  574. \newpage
  575.  
  576. % ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  577. \section{Der CLI und MiNT}
  578.  
  579. Der CLI erkennt die Anwesenheit von MiNT im Speicher und ber"ucksichtigt das
  580. bei einigen Befehlen; so werden UID und GID beim Login automatisch gesetzt.
  581. Der VER Befehl erkennt die MiNT Version und gibt sie mit aus. DIR akzeptiert
  582. die Pseudolaufwerke {\sf Q:}, {\sf V:} und {\sf X:}. WAIT benutzt den
  583. {\sf S\_Yield()} Systemcall. Als neuer Befehl gibt PS die Proze"stabelle aus.
  584. Schlie"slich wird Multitasking unterst"utzt, indem ein Programm im Hintergrund
  585. gestartet wird, wenn das erste Zeichen einer Zeile das `\&' Zeichen ist.
  586.  
  587. % ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  588. \section{Das ARGV-Schema}
  589.  
  590. Der CLI unterst"utzt das neue ARGV-Protokoll, um Programmen u.a.~den Zugriff
  591. auf den eigenen Namen zu erm"oglichen ({\sf ARGV[0]}). Leider vertragen sich einige
  592. Programme nicht mit dem neuen Protokoll. Daher kann man es mit einer neuen
  593. Environment Variablen ein- und ausschalten. Ist die Variable {\sf N127} vorhanden, 
  594. so ist das ARGV Protokoll eingeschaltet. Der zugewiesene Wert ist dabei 
  595. gleichg"ultig. Ist sie nicht vorhanden, so wird das Protokoll nicht unterst"utzt.
  596.  
  597. %
  598. % ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  599.  
  600. \section{Die Befehle}
  601. Hier sollen nun die einzelnen eingebauten Befehle des CLI vorgestellt und 
  602. erl"autert werden.
  603.  
  604. % ~~~~~~~~~~~~~~~
  605. \subsection{ADDENV}
  606. Syntax: ADDENV {\em varname} {\em string}
  607.  
  608. Mit ADDENV kann an eine Environmentvariable etwas angeh"angt werden.
  609. {\em varname\/} ist dabei der Name der Variable, und {\em string}\/ wird
  610. (durch ein Komma getrennt) and den Inhalt der Variable angeh"angt.
  611. Ein Beispiel:
  612.  
  613. \begin{verbatim}
  614.   addenv PATH $HOME
  615. \end{verbatim}
  616.  
  617. Nun w"urde auch das {\sf HOME}-Verzeichnis mit in die Suche nach
  618. externen Befehlen einbezogen.
  619.  
  620. % ~~~~~~~~~~~~~~~
  621. \subsection{ALIAS}
  622. Syntax: ALIAS [\ [-d]\ {\em string1\/} {\em string2\/}
  623.               ]
  624.  
  625. Mit ALIAS kann man die Zeichenkette {\em string2}\/ der Zeichenkette
  626. {\em string1} zuweisen. D.h.,~ gibt man nach einer ALIAS-Zuweisung, nach
  627. obiger Syntax, in der Kommandozeile {\em string1}\/ ein, so versucht der
  628. CLI {\em string2}\/ auszuf"uhren. So bewirkt z.B.
  629.  
  630. \begin{verbatim}
  631.   alias d dir
  632. \end{verbatim}
  633.  
  634. da\ss\ `d' als Befehl erkannt wird und wie der DIR-Befehl wirkt.
  635.  
  636. Wird die `-d' ({\em delete}\/) Option angegeben, so wird die entsprechende
  637. Zeichenkette aus der Alias-Liste entfernt.
  638.  
  639. \begin{verbatim}
  640.   alias -d d
  641. \end{verbatim}
  642.  
  643. macht also die eben gemachte Zuweisung r"uckg"angig.
  644.  
  645. Wird ALIAS ohne Parameter angegeben, wird die Liste der definierten Befehle 
  646. ausgegeben.
  647.  
  648.  
  649. % ~~~~~~~~~~~~~~~
  650. \subsection{BAUD}
  651. Syntax: BAUD {\em baudrate},{\em word\_size},{\em parity},{\em stop\_bits}
  652.  
  653. Mit dem BAUD-Befehl kann die serielle Schnittstelle des {\sf ST} (RS-232)
  654. konfiguriert werden. Zun"achst wird die Baudrate angegeben, dann die Anzahl
  655. der Datenbits, gefolgt von der Parit"at (n,o,e f"ur: none, odd, even Parit"at)
  656. und schlie\ss{}lich die Anzahl der Stopbits.
  657.  
  658. Mit: 
  659.  
  660. \begin{verbatim}
  661.   baud 300,8,n,1
  662. \end{verbatim}
  663.  
  664. wird also z.B. die Schnittstelle auf 300 Baud, keine Parit"at, 8 Datenbits
  665. und ein Stopbit eingestellt.
  666.  
  667. % ~~~~~~~~~~~~~~~
  668. \subsection{CD oder CHDIR}
  669. Syntax: CD [{\em pathname\/}]\ oder CHDIR [{\em pathname\/}]
  670.  
  671. Mit CD ({\em change directory\/}) wird ein neues aktuelles Verzeichnis gew"ahlt. 
  672. Normalerweise wird der angegebene Ordnername an den aktuellen Pfad angeh"angt.
  673. Die Abk"urzung `..' bezieht sich auf das n"achste "ubergeordnete Verzeichnis.
  674. Ist der aktuelle Pfad z.B.~{\tt C:\bsl TEMP\bsl COMP\bsl } und wird das
  675. Kommando `{\tt cd ..}' eingegeben, so wechselt das aktuelle Verzeichnis auf
  676. {\tt C:\bsl TEMP\bsl }.
  677. Es kann aber auch ein kompletter neuer Pfad eingegeben werden, 
  678. z.B.~`{\tt cd e:\bsl }' oder `{\tt cd a:\bsl test\bsl }'.
  679. Wird kein Parameter angegeben, so wechselt CD in das {\sf HOME}-Verzeichnis.
  680.  
  681. Der CLI bietet hier dem Benutzer die M"oglichkeit, Pfadnamen mittels Wildcards
  682. anzugeben.
  683. Es werden einfach die signifikanten Zeichen eines Pfadnamens, gefolgt vom
  684. Asterisken--Zeichen (`$\ast$') angegeben. Der CLI erg"anzt dann zum 
  685. vollst"andigen Pfadnamen. Angenommen das aktuelle Verzeichnis sei {\tt C:\bsl }
  686. und es gibt ein Unterverzeichnis {\tt \bsl SOURCE\bsl }, in welches man
  687. wechslen m"ochte. Dann w"urde man vielleicht folgenden Befehl verwenden:
  688.  
  689. \begin{verbatim}
  690.   cd sou*
  691. \end{verbatim}
  692.  
  693. Damit wird der CLI in das Verzeichnis \verb"C:\SOURCE\TEST\" wechseln.
  694.  
  695. % ~~~~~~~~~~~~~~~
  696. \subsection{CHMOD}
  697. Syntax: CHMOD [$+\mid-$] [r$\mid$h$\mid$s$\mid$a ] {\em filename}
  698.  
  699. Mit diesem Befehl k"onnen die Dateiattribute ver"andert werden, "ahnlich wie
  700. LOCK/UNLOCK etc. Jedes einzelne Attribut kann mit einem Befehl gezielt
  701. gesetzt oder gel"oscht werden, z.B.:
  702.  
  703. \begin{verbatim}
  704. chmod +r-sh test.txt
  705. \end{verbatim}
  706.  
  707. setzt das {\em read-only\/} Attribut und l"oscht die {\em system\/} und
  708. {\em hidden\/} Attribute, und wirkt so wie
  709.  
  710. \begin{verbatim}
  711. lock test.txt
  712. hide test.txt
  713. \end{verbatim} 
  714.  
  715. % ~~~~~~~~~~~~~~~
  716. \subsection{CLICK}
  717. Syntax: CLICK [ON$\mid$OFF]
  718.  
  719. CLICK OFF schaltet den Tastaturklick ab, CLICK ON schaltet ihn wieder ein.
  720. % ~~~~~~~~~~~~~~~
  721. \subsection{CLS}
  722. Syntax: CLS
  723.  
  724. Der Befehl CLS ({\em clear screen\/}) l"oscht den Bildschirm. Es werden dazu
  725. die Terminalsequenzen eines {\sf DEC} VT-52 Terminals verwendet
  726. (also: ESC--H--ESC--J).
  727.  
  728. % ~~~~~~~~~~~~~~~
  729. \subsection{COPY oder CP}
  730. Syntax: \parbox[t]{6cm}{
  731.         COPY \hfill [-ns]\ {\em pathname}\/ 
  732.                      [{\em pathname\/}] \linebreak
  733.         CP   \hfill [-ns]\ {\em pathname}\/ 
  734.                      [{\em pathname\/}]}
  735.         \parbox[t]{2cm}{oder}
  736.  
  737. Mit dem Befehl COPY, bzw.~CP kann eine Kopie einer Datei in einem an\-deren 
  738. Verzeichnis oder Laufwerk angelegt werden. Hierbei sind Wildcards erlaubt.
  739. Ist im Zielpfad bereits eine Datei gleichen Namens vorhanden, fragt der
  740. CLI nach, ob diese gel"oscht werden soll, oder ob man die Kopieranweisung
  741. abbrechen will. Wird kein Zielpfad angegeben, so ist der aktuelle Pfad
  742. Zielpfad der Operation. Das Dateidatum bleibt hierbei erhalten. Um die Kopie mit
  743. dem aktuellen Systemdatum zu versehen, siehe TOUCH Befehl.
  744. Einige Beispiele:
  745.  
  746. \begin{description}
  747.  \item[{\tt COPY $\ast$.TXT A:\bsl}] \ \\
  748.     kopiert alle Dateien, die auf {\tt .TXT} enden aus dem aktuellen 
  749.     Verzeichnis auf Laufwerk {\tt A:}
  750.  \item[{\tt COPY $\ast$.TXT C:\bsl $\ast$.DOC}]\ \\
  751.     kopiert alle Dateien, die auf {\tt .TXT} enden auf
  752.     Laufwerk C und benennt sie gleichzeitig in {\tt .DOC} um.
  753.  \item[{\tt COPY HALLO.TXT TEST.DOC}]\ \\
  754.     legt eine Kopie der Datei {\tt HALLO.TXT} an und nennt sie {\tt TEST.DOC.}
  755. \end{description}
  756.  
  757. Mit der Option `-n' ({\em no query\/}) wird die Nachfrage abgeschaltet, ob
  758. eine im Zielpfad schon vorhandene Datei gleichen Namens "uberschrieben werden
  759. soll oder nicht. Die Option \mbox{`-s'} ({\em silent\/}) bewirkt, da\ss\ der
  760. Kopiervorgang nicht auf dem Schirm mitprotokolliert wird. 
  761.  
  762. % ~~~~~~~~~~~~~~~
  763. \subsection{CTTY}
  764. Syntax: CTTY {\em device}
  765.  
  766. Mit dem Befehl CTTY ({\em change TTY\/}) wird dem CLI mitgeteilt, da\ss\
  767. nun alle Ausgaben und Eingaben der internen Befehle "uber die serielle
  768. Schnittstelle ({\em device\/} ist dann {\tt AUX:}) oder "uber dir Konsole
  769. ({\em device\/} ist dann {\tt CON:}) abgewickelt werden sollen.
  770. Damit ist der CLI fernbedienbar ({\em remote modus\/}). 
  771. Bei Betrieb "uber die serielle Schnittstelle wird ab Version 1.0t weiterhin
  772. die Ausgabe auf den Bildschirm ausgegeben.
  773. Der Remotebetrieb ist dabei von der Konsole aus abbrechbar.
  774.  
  775.  
  776. % ~~~~~~~~~~~~~~~
  777. \subsection{DATE}
  778. Syntax: DATE [-s]
  779.  
  780. Mit dem DATE Befehl kann das Systemdatum abgefragt und gestellt werden. Nach 
  781. Eingabe von DATE wird das aktuelle Datum ausgegeben. Nun kann ein neues Datum 
  782. eingegeben werden. Wird stattdessen ein ung"ultiges Datum angegeben oder
  783. einfach nur die {\sf RETURN}-Taste bet"atigt, bleibt das Datum unver"andert.
  784. Bei Angabe der \mbox{`-s'} Option ({\em set\/}) wird das aktuelle Datum im Format
  785. \vskip.1cm
  786. \centerline{\em Wochentag\tt , \em Tag\tt .  \em Monat \em Jahr}
  787.  
  788. in die Environmentvariable {\sf DATE} geschrieben.
  789.  
  790.  
  791. % ~~~~~~~~~~~~~~~
  792. \subsection{DEL}
  793. Syntax: DEL [-qs]\ \{{\em filename\/}\}
  794.  
  795. L"oscht die angegebene Datei. Es k"onnen auch Wildcards (`\verb"*"' oder 
  796. `\verb"?"') angegeben werden, aber dabei ist Vorsicht geboten!
  797. Man l"oscht sich nur allzuleicht Daten, die man nicht l"oschen wollte!
  798. So l"oscht 
  799.  
  800. \begin{verbatim}
  801.   del *.prg
  802. \end{verbatim}
  803.  
  804. alle Dateien im aktuellen Verzeichnis, die die Extension `{\tt .PRG}'
  805. besitzen. Siehe hierzu auch unbedingt Abschnitt \ref{wildcards}.
  806. Gibt man jeden Namen einzeln an und/oder nutzt die `-q' Option ({\em query},
  807. Nachfrage), geht man auf Nummer sicher.
  808.  
  809. DEL und seine Equivalente RM und ERA geben eine englische Meldung aus, was
  810. gel"oscht wird. Ist diese englische Meldung in einer Batchabarbeitung 
  811. st"orend, so kann diese auch mit der \mbox{`-s'} Option ({\em silent\/}) unterdr"uckt
  812. werden.
  813.  
  814. % ~~~~~~~~~~~~~~~
  815. \subsection{DELENV}
  816. Syntax: DELENV {\em varname}
  817.  
  818. Mit diesem Befehl kann die Environmentvariable {\em varname\/} gel"oscht
  819. werden. Dieser Befehl stellt also das Komplement zu SETENV dar.
  820.  
  821. % ~~~~~~~~~~~~~~~
  822. \subsection{DIR}
  823. Syntax: DIR [-aepw]\ [{\em pathname\/}]
  824.  
  825. Der Inhalt des angegebenen Pfades, oder, wenn kein Pfad angegeben ist, der 
  826. Inhalt der aktuellen Directories wird ausgegeben. Normalerweise werden
  827. Dateien, bei denen das {\em hidden\/}- oder {\em system\/}-Attribut gesetzt ist,
  828. nicht mit ausgegeben.
  829.  
  830. Wird jedoch die `-a' Option ({\em all\/}) angegeben, so werden auch diese Dateien
  831. mit ausgegeben. Mit der `-e' Option ({\em extended\/}) werden auch die Attribute
  832. {\em read-only\/}, {\em system\/} und {\em hidden\/} mit ausgegeben.
  833. Ist das Attribut gesetzt, so erscheint der Buchstabe `r',`h' oder `s' und
  834. wenn das Attribut gel"oscht ist, erscheint ein `-'. Mit der `-p' Option
  835. ({\em pause\/}) wird auf einen Tastendruck gewartet, sobald eine volle Seite
  836. ausgegeben wurde. Mit der `-w' Option ({\em wide\/}) werden 6 Dateinamen pro Zeile
  837. ausgegeben, daf"ur aber ohne L"ange, Datum und Uhrzeit.
  838.  
  839. % ~~~~~~~~~~~~~~~
  840. \subsection{DUMP}
  841. Syntax: DUMP [-s{\em hexoffset\/}]\  {\em filename}
  842.  
  843. Dieser Befehl gibt einen Hexdump der angegebenen Datei aus. Wird als Option
  844. ein Offset angegeben, so wird die Datei erst ab diesem Offset ausgegeben.
  845. Beispiel:
  846.  
  847. \begin{verbatim}
  848.   dump -s2E test.txt
  849. \end{verbatim}
  850.  
  851. % ~~~~~~~~~~~~~~~
  852. \subsection{ECHO}
  853. Syntax: ECHO [ON$\mid$OFF$\mid${\em string\/}]
  854.  
  855. Die auf diesen Befehl folgende Zeile wird, normalerweise, auf dem Bildschirm
  856. ausgegeben. ECHO wird gerne in Batchdateien verwendet um Meldungen auf
  857. dem Bildschirm auszugeben. Man kann ihn aber auch dazu benutzen, um eine
  858. kleine Textdatei zu erstellen, und das geht so:
  859.  
  860. Die erste Zeile der Batchdatei wird mit `\verb">"{\em dateiname}' in eine
  861. Datei umgeleitet. Alle weiteren Zeilen werden mit `\verb">>"{\em dateiname}'
  862. an die bestehende Datei angeh"angt.
  863. Dieses Verfahren ist allerdings ziemlich aufwendig und nur dann sinnvoll,
  864. wenn eine kleine Datei schnell erstellt werden soll und kein Texteditor
  865. zur Verf"ugung steht.
  866.  
  867. Auch Sonderzeichen k"onnen mit ECHO ausgegeben werden. Dazu mu\ss\ anstelle 
  868. des Sonderzeichens `\&{\em hh}' angegeben werden, wobei {\em hh\/} hierbei der
  869. Hexcode des Sonderzeichens ist.
  870.  
  871. ECHO besitzt noch eine weitere Funktion. Mit ihr kann festgelegt werden, ob
  872. bei der Abarbeitung einer Batch-Datei die einzelnen Befehle ausgegeben werden
  873. oder nicht. Grundeinstellung ist ECHO OFF. Mit ECHO ON schaltet man die
  874. Ausgabe ein. Wird nur ECHO eingegeben, wird der aktuelle ECHO-Status abgefragt.
  875.  
  876. % ~~~~~~~~~~~~~~~
  877. \subsection{ERA}
  878. Syntax: ERA [-qs]\ \{{\em filename\/}\}
  879.  
  880. Ist equivalent zu DEL.
  881.  
  882. % ~~~~~~~~~~~~~~~
  883. \subsection{EXIT}
  884. Syntax: EXIT
  885.  
  886. Dieser Befehl beendet den CLI und kehrt zum aufrufenden Programm zur"uck, und 
  887. das ist in der Regel das Desktop.
  888.  
  889. % ~~~~~~~~~~~~~~~
  890. \subsection{FKEY}
  891. Syntax: FKEY [-e]\  F{\em number\/}\ $=$\ {\em text}
  892.  
  893. Mit diesem Befehl kann einer der 10 Funktionstasten ein maximal 19 Zeichen 
  894. langer Text zugewiesen werden, der bei Bet"atigung der entsprechenden Taste
  895. dann ausgegeben wird. Beispiel:
  896.  
  897. \begin{verbatim}
  898.   fkey F4=Hallo Welt
  899. \end{verbatim}
  900.  
  901. Die `-e' Option ({\em execute\/}) erm"oglicht es, "uber Funktionstasten
  902. direkt Programme oder Batches auszuf"uhren. Beispiel:
  903.  
  904. \begin{verbatim}
  905.   fkey -e F10=gem uniterm
  906. \end{verbatim}
  907.  
  908.  
  909. % ~~~~~~~~~~~~~~~
  910. \subsection{FORMAT}
  911. Syntax: FORMAT [A:$\mid$B:]\  [-s$\mid$-d$\mid$-dh] 
  912.                [-v{\em volumename\/}]\  
  913.  
  914. Es wird eine Diskette in Laufwerk {\tt A:} oder {\tt B:} formatiert.
  915. Die \mbox{`-s'} Option formatiert im Single-Sided (360K) Format und die `-d'
  916. Option im Double-Sided (720K) Format. Bei -dh wird die Diskette auf 1.44MB
  917. (Double sided, high density) formatiert, jedoch nur, wenn der {\sf ST}
  918. "uber ein HD-Laufwerk verf"ugt und entsprechend modifiziert worden ist.
  919. Die \mbox{`-v'} Option erm"oglicht es, der zu formatierenden Diskette den
  920. Namen {\em volumename\/} zu geben. Dies ist aber nachtr"aglich auch noch mit
  921. dem LABEL Befehl m"oglich.
  922.  
  923. % ~~~~~~~~~~~~~~~
  924. \subsection{FRE}
  925. Syntax: FRE [{\em drive\/}]
  926.  
  927. Gibt den Namen, den verf"ugbaren sowie den bereits belegten Speicherplatz
  928. des aktuellen Laufwerks aus.
  929. Es ist auch m"oglich eine Laufwerksspezifikation {\em drive\/} anzugeben, z.B.:
  930.  
  931. \begin{verbatim}
  932.   fre d:
  933. \end{verbatim}
  934.  
  935. w"urde Namen, verf"ugbaren und belegten Speicherplatz von Laufwerk {\tt D:}
  936. ausgeben.
  937.  
  938. % ~~~~~~~~~~~~~~~
  939. \subsection{GEM}
  940. Syntax: GEM {\em filename}
  941.  
  942. Startet ein Programm, welches {\sf GEM}-Routinen benutzt. Es werden also der
  943. Mauszeiger eingeschaltet und der Bildschirm gel"oscht.  {\em filename\/}
  944. sollte hierbei eine ausf"uhrbare Bin"ardatei sein.
  945.  
  946. % ~~~~~~~~~~~~~~~
  947. \subsection{HEAD}
  948. Syntax: HEAD [-anzahl] [{\em filename\/}]
  949.  
  950. Gibt die ersten paar Zeilen einer Textdatei aus. Normalerweise werden die
  951. ersten 10 Zeilen ausgegeben. Mit dem Anzahl-Parameter kann jedoch eine
  952. beliebige Zeilenzahl eingestellt werden. Wird kein Dateiname angegeben,
  953. kann HEAD als Filter verwendet werden, d.h.~er bezieht seine Eingabe durch
  954. eine Pipe von einem anderen Programm.
  955.  
  956. % ~~~~~~~~~~~~~~~
  957. \subsection{HELP}
  958. Syntax: HELP
  959.  
  960. Mit diesem Befehl wird eine "Ubersicht der CLI-Befehle ausgegeben.
  961. Ein Dr"ucken der {\sf HELP} Taste hat die gleiche Wirkung.
  962.  
  963. % ~~~~~~~~~~~~~~~
  964. \subsection{HIDE}
  965. Syntax: HIDE [-s] \{{\em filename\/}\}
  966.  
  967. Bei den angegebenen Dateien werden die {\em hidden\/}- und
  968. {\em system\/}-Attribute gesetzt. 
  969. Damit sind diese Dateien (in {\sf TOS}-Versionen ab Blitter-{\sf TOS})
  970. vom Desktop aus nicht mehr sichtbar. Damit diese Dateien vom DIR Befehl
  971. erkannt werden, mu\ss\ beim DIR Befehl die `-a' Option angegeben werden. 
  972. Die \mbox{`-s'} Option ({\em silent\/}) schaltet die Vollzugsmeldung ab.
  973.  
  974. % ~~~~~~~~~~~~~~~
  975. \subsection{HISTORY / !}
  976. Syntax: HISTORY / !{\em number\/} / !{\em string}
  977.  
  978. Gibt die letzten 20 Befehle auf dem Bildschirm aus. Es ist nun m"oglich,
  979. einen der in der History gespeicherten Befehle anzuw"ahlen. Und zwar:
  980.  
  981. \begin{description}
  982.  
  983.  \item[Cursortasten]\ \\
  984.    Mit den Cursortasten `Pfeil-hoch' und `Pfeil-runter' werden die
  985.    im history-Puffer gespeicherten Befehle bei jedem Tastendruck in
  986.    der Kommandozeile dargestellt und k"onnen dann editiert oder einfach
  987.    noch einmal ausgef"uhrt werden.
  988.  
  989.  \item[direkte Wahl]\ \\
  990.    Die direkte Wahl bietet folgende zwei M"oglichkeiten:
  991.  
  992.    \begin{itemize}
  993.      \item !{\em number\/} w"ahlt den Befehl an, der an der Stelle
  994.        {\em number\/} im history-Puffer steht. Also beispielsweise      
  995.  
  996.        \begin{verbatim}
  997.           C:> history
  998.             1: dir
  999.             2: cp a:\hallo c:\
  1000.             3: history
  1001.           C:> !1
  1002.        \end{verbatim}
  1003.  
  1004.        w"urde den Befehl DIR ausf"uhren.
  1005.  
  1006.      \item !{\em string\/} w"ahlt den ersten Befehl im history-Puffer an,
  1007.        der {\em string\/} als Teilwort enth"ahlt. Um bei obigem Beispiel zu
  1008.        bleiben, w"urde {\tt !cp} den Befehl Nummer~2 im history-Puffer
  1009.        ausf"uhren, also
  1010.        \begin{verbatim}
  1011.          cp a:\hallo c:\
  1012.        \end{verbatim}
  1013.  
  1014.    \end{itemize}
  1015.  
  1016. \end{description}
  1017.  
  1018.  
  1019. % ~~~~~~~~~~~~~~~
  1020. \subsection{HSHAKE}
  1021. Syntax: HSHAKE [XON$\mid$RTS$\mid$NONE]
  1022.  
  1023. HSHAKE stellt das Protokoll der seriellen Schlittstelle des {\sf ST}'s ein.
  1024. Wird kein Parameter oder NONE angegeben, so wird das Handshake abgeschaltet,
  1025. bei XON schaltet der CLI den {\sf ST} auf XON/XOFF-Protokoll um, und bei RTS
  1026. auf RTS/CTS, was aber leider in "alteren {\sf TOS}-Versionen nicht
  1027. funktioniert.
  1028.  
  1029. % ~~~~~~~~~~~~~~~
  1030. \subsection{IGNORE}
  1031. Syntax: IGNORE {\em command}
  1032.  
  1033. Mit dem IGNORE-Befehl kann man erzwingen, da\ss\ ein Befehl von
  1034. Diskette bzw.~Festplatte geladen wird, auch wenn bereits ein eingebauter
  1035. Befehl gleichen Namens vorhanden ist.
  1036.  
  1037. \begin{verbatim}
  1038. ignore dir
  1039. \end{verbatim}
  1040.  
  1041. w"urde bewirken, da\ss\ sich der CLI so verh"alt, als w"are der DIR-Befehl
  1042. nicht eingebaut. Daraufhin sucht er dann die {\sf PATH}-Variable nach einem
  1043. Programm namens {\tt DIR.TTP}, {\tt DIR.PRG} usw.~ab.
  1044. Siehe dazu auch Abschnitt \ref{revive}.
  1045.  
  1046. % ~~~~~~~~~~~~~~~
  1047. \subsection{INVERT}
  1048. Syntax: INVERT
  1049.  
  1050. Invertiert den Bildschirm, also wei\ss{}e Buchstaben auf schwarzem Grund und 
  1051. umgekehrt.
  1052.  
  1053. % ~~~~~~~~~~~~~~~
  1054. \subsection{LABEL}
  1055. Syntax: LABEL {\em volumename}
  1056.  
  1057. Dem aktuellen Laufwerk wird der Name {\em volumename} gegeben.
  1058.  
  1059. % ~~~~~~~~~~~~~~~
  1060. \subsection{LOCK}
  1061. Syntax: LOCK [-s] \{{\em filename\/}\}
  1062.  
  1063. Bei der angegebenen Datei wird das {\em read-only\/} Attribut gesetzt.
  1064. Danach kann diese Datei nur noch gelesen, aber nicht mehr beschrieben werden.
  1065. Die \mbox{`-s'} Option ({\em silent\/}) schaltet die Vollzugsmeldung ab.
  1066.  
  1067. % ~~~~~~~~~~~~~~~
  1068. \subsection{LOGCNT}
  1069. Syntax: LOGCNT
  1070.  
  1071. Normalerweise bricht der CLI nach 3 Login-Versuchen ab und kehrt zu dem
  1072. aufrufenden Programm zur"uck. Der {\sf LOGCNT} (Continuous Login) bewirkt, da\ss\
  1073. der Benutzer beliebig viele Versuche hat, sich zu identifizieren. Dadurch
  1074. wird auch bei Fehlversuchen nicht zum aufrufenden Programm zur"uckgekehrt.
  1075. Der CLI kann damit dazu dienen, den Computer `abzuschlie\ss{}en'; hierzu
  1076. wird der CLI z.B.~so installiert, da\ss\ er nach dem Einschalten des Computers
  1077. immer ausgef"uhrt wird und in {\tt autoexec.bat} der {\sf LOGCNT}
  1078. Befehl, gefolgt von {\sf LOGIN} steht. Aber dann das Passwort nicht vergessen!
  1079.  
  1080. % ~~~~~~~~~~~~~~~
  1081. \subsection{LOGIN}\label{login}
  1082. Syntax: LOGIN
  1083.  
  1084. Mit dem LOGIN Befehl ist es m"oglich, mehreren Benutzern eigene
  1085. CLI-Um\-gebungen (also Environments) bereitzustellen.
  1086.  
  1087. Dabei wird jedem Benutzer Benutzername, Passwort, voller Name und ein
  1088. {\sf HOME} Directory zugewiesen. Diese Benutzerdaten werden in einer Datei
  1089. {\tt PASSWD} festgelegt. Der CLI sucht diese Datei in dem Directory,
  1090. welches in der Environmentvariablen {\sf LOGIN} angegeben ist.
  1091. Bevor der Befehl LOGIN eingegeben wird, sollte also diese Variable
  1092. entsprechend gesetzt werden.
  1093.  
  1094. Nach Eingabe von LOGIN fordert der CLI zur Eingabe des Benutzernamen auf.
  1095. Ist der Benutzername in der {\tt PASSWD}-Datei nicht eingetragen, so hat der
  1096. Benutzer drei Versuche einen g"ultigen Benutzernamen einzugeben. Ist dies
  1097. nicht geschehen, so wird der CLI beendet und zum aufrufenden Programm
  1098. zur"uckgekehrt.
  1099.  
  1100. Ist der Benutzer eingetragen, so wird nach dem Passwort gefragt. Ist kein
  1101. Passwort vorhanden, gen"ugt Bet"atigung der {\sf RETURN}-Taste. Wurde das
  1102. g"ultige Passwort eingegeben, so werden die Environmentvariablen {\sf USER}
  1103. und {\sf HOME} entsprechend gesetzt, in das entsprechende {\sf HOME}-Directory
  1104. gewechselt und dort die Datei {\tt LOGIN.BAT} ausgef"uhrt. Au\ss{}erdem wird
  1105. die History gel"oscht. In der Datei {\tt LOGIN.BAT} kann sich so jeder
  1106. Benutzer seine eigenen Voreinstellungen sichern.
  1107.  
  1108. Aufbau der {\tt PASSWD}-Datei:
  1109.  
  1110. \vskip.4cm
  1111. \centerline{
  1112.   {\em user},{\em password},{\em uid},{\em gid},{\em username},
  1113.   {\em home\_directory}[,{\em default-shell}]\/ CR/LF}
  1114. \vskip.2cm
  1115.  
  1116. Ein neuer Usereintrag k"onnte dann etwa so aussehen:
  1117. \nopagebreak
  1118.  
  1119. \begin{verbatim}
  1120. SuperUser,,0,0,Peter Meier,e:\super\,c:\command.prg
  1121. \end{verbatim}
  1122.  
  1123. Beim {\em user\/}, also dem Namen unter dem sich ein Benutzer eingelogged
  1124. hat und welcher in der Environmentvariablen {\sf USER} gespeichert wird,
  1125. wird Gro\ss{}- und Kleinbuchstaben unterschieden, ebenso beim {\em password\/}.
  1126. Das Passwort wird verschl"usselt abgespeichert und kann nur mit dem
  1127. PASSWD-Befehl ge"andert werden.
  1128. {\em uid\/} und {\em gid\/} sind ganze Zahlen und werden vom CLI ignoriert,
  1129. m"ussen aber aus Kompatibilit"atsgr"unden vorhanden sein.
  1130. {\em username\/} ist der volle Benutzername, der in der Environmentvariablen
  1131. {\sf USERNAME} gespeichert wird. Die Environmentvariable {\sf HOME} wird mit 
  1132. {\em home\_directory\/} belegt.
  1133. Soll nach dem login nicht der CLI gestartet werden, sondern eine andere Shell
  1134. oder ein anderes Programm, so kann noch optional {\em default-shell\/} angegeben
  1135. werden.
  1136. % ~~~~~~~~~~~~~~~
  1137. \subsection{LS}
  1138. Syntax: LS [-aep]\ [{\em pathname\/}]
  1139.  
  1140. Gleiche Funktion wie DIR, nur mit Voreinstellung Option `-w' gesetzt.
  1141.  
  1142.  
  1143. % ~~~~~~~~~~~~~~~
  1144. \subsection{LTTY}
  1145. Syntax: LTTY
  1146.  
  1147. Der Befehl LTTY ({\em lock TTY\/}) erm"oglicht eine Verriegelung der
  1148. Tastatur. Der Benutzer wird nach einem Passwort gefragt und mu\ss\ dieses
  1149. dann zur Sicherheit noch einmal eingeben.
  1150. Die Tastatur l"a\ss{}t sich nun nur noch durch Eingabe dieses Passwortes
  1151. oder nat"urlich durch einen Reset des Rechners wieder entriegeln.
  1152.  
  1153.  
  1154. % ~~~~~~~~~~~~~~~
  1155. \subsection{MAN}
  1156. Syntax: MAN [{\em level\/}]\/ {\em command}
  1157.  
  1158. Es wird die Datei \verb"command.*" aus einem der Verzeichnisse,
  1159. welche in der Environmentvariablen {\sf MAN} gespeichert sind, ausgegeben.
  1160. Man kann sich so also ein oder mehrere Directories mit Hilfstexten
  1161. (ASCII-codiert) anlegen, die jeweils die Endung {\tt .MAN} tragen k"onnen.
  1162. Wird dabei die optionale Zahl {\em level\/} angegeben, so sucht der CLI nach
  1163. einer Extension, die mit dieser Zahl beginnt. Dabei darf sich {\em level\/}
  1164. im Bereich null bis sieben bewegen. So k"onnte die Beschreibung f"ur
  1165. den {\sf C}-Befehl {\sf strcpy()} etwa {\tt STRCPY.3C} hei\ss{}en. Dabei steht
  1166. die 3 f"ur Level 3 und das `C' f"ur die Programmiersprache {\sf C}.
  1167.  
  1168. Man k"onnte also den Utilities und anderen Programmen Level 1, den
  1169. Betriebssystemaufrufen den Level 2 und Bibliotheksfunktionen verschiedener
  1170. Programmiersprachen den Level 3 zuordnen, wobei der drei noch ein Kennbuchstabe
  1171. f"ur die Programmiersprache nachgestellt wird.
  1172.  
  1173. Manchmal kann es sinnvoll sein, mehrere Hilfstexte in einer Datei abzulegen,
  1174. die aber unter verschiedenen Namen angesprochen werden soll. So k"onnte man
  1175. alle Stringbefehle in einer Datei {\tt STRING.3C} ablegen. Nun soll diese Datei
  1176. auch unter den Namen {\tt strcpy}, {\tt strcmp}, {\tt strcat} u.s.w.~angesprochen werden.
  1177. Dazu wird eine Datei {\tt MAN.IDX} im Hilfstextdirectory angelegt, die pro Zeile
  1178. einen Namen einer Datei zuordnet. Dabei beginnt eine Zeile mit dem Namen,
  1179. unter dem die Datei angesprochen werden soll. Dann folgen ein oder
  1180. mehrere Leerzeichen und schlie\ss{}lich der Dateiname.
  1181. Die Datei k"onnte also z.B.~so aussehen:
  1182.  
  1183. \begin{verbatim}
  1184. strcpy          string
  1185. strcmp          string
  1186. strcat          string
  1187. fopen           gemfile
  1188. fcreate         gemfile
  1189. \end{verbatim}
  1190.  
  1191. Eine solche Indexdatei kann in jedem der in der {\sf MAN} Environmentvariablen
  1192. abgelegten Directories angelegt werden. Dabei bezieht sich jeder Dateiname
  1193. auf das jeweilige Directory!
  1194.  
  1195. Normalerweise wird die Textdatei durch den internen MORE Befehl ausgegeben.
  1196. Es kann dazu jedoch auch z.B.~ein Programm benutzt werden. Dazu wird in
  1197. der {\sf PAGER} Variablen der Name des Befehls abgelegt, der statt MORE die
  1198. Datei ausgeben soll.
  1199.  
  1200. % ~~~~~~~~~~~~~~~
  1201. \subsection{MFREE}
  1202. Syntax: MFREE
  1203.  
  1204. Dieser Befehl gibt den aktuell verf"ugbaren Hauptspeicherplatz aus.
  1205.  
  1206. % ~~~~~~~~~~~~~~~
  1207. \subsection{MKDIR}
  1208. Syntax: MKDIR {\em dirname}
  1209.  
  1210. Um einen neuen Ordner {\em dirname\/} anzulegen verwendet man der MKDIR Befehl.
  1211.  
  1212. \begin{verbatim}
  1213.   mkdir TEST
  1214. \end{verbatim}
  1215.  
  1216. legt einen Ordner mit Namen {\tt TEST} an.
  1217.  
  1218. % ~~~~~~~~~~~~~~~
  1219. \subsection{MORE}
  1220. Syntax: MORE \{{\em filename\/}\}
  1221.  
  1222. MORE ist ein Ausgabebefehl, der Dateien seitenweise auf dem Bildschirm 
  1223. anzeigt, und ausgibt, wieviel Prozent der Datei schon ausgegeben sind.
  1224. Mit der Taste `b' kann zur"uckgebl"attert werden, jede andere Taste
  1225. bl"attert vorw"arts. Mit der Taste `n' wird, wenn mehrere Dateien
  1226. ausgegeben werden sollen, die aktuelle Ausgabe abgebrochen und
  1227. mit der n"achsten Datei fortgefahren. Mit Control-C oder `q' kann jederzeit
  1228. die Ausgabe abgebrochen werden.
  1229.  
  1230. Wird kein Dateiname angegeben, so liest MORE von `stdin', d.h.~es kann
  1231. mit einer Pipe die Ausgabe eines Programmes als Eingabe von MORE
  1232. verwendet werden.
  1233.  
  1234. % ~~~~~~~~~~~~~~~
  1235. \subsection{MOVE oder MV}
  1236. Syntax:  \parbox[t]{6.1cm}{
  1237.         MOVE \hfill [-ns]\ {\em pathname\/}
  1238.                      [{\em pathname\/}] \linebreak
  1239.         MV   \hfill [-ns]\ {\em pathname\/}
  1240.                      [{\em pathname\/}]}
  1241.         \parbox[t]{2cm}{oder}
  1242.  
  1243.  
  1244. Bewirkt exakt dasselbe wie COPY, jedoch wird die Quelldatei nach dem 
  1245. Kopiervorgang gel"oscht. Die Datei(en) werden also verschoben. Die Option
  1246. \mbox{`-s'} ({\em silent\/}) bewirkt, da\ss\ dieser Vorgang nicht auf dem Schirm
  1247. mitprotokolliert wird.
  1248.  
  1249. % ~~~~~~~~~~~~~~~
  1250. \subsection{MS}
  1251. Syntax: MS [ON$\mid$OFF]
  1252.  
  1253. MS ON aktiviert den Mauszeiger. MS OFF ist das Komplement zu MS ON.
  1254.  
  1255. % ~~~~~~~~~~~~~~~
  1256. \subsection{PASSWD}
  1257. Syntax: PASSWD
  1258.  
  1259. Mit diesem Befehl kann man sein Passwort "andern. Die Benutzerf"uhrung ist 
  1260. selbsterkl"arend.
  1261.  
  1262. % ~~~~~~~~~~~~~~~
  1263. \subsection{PATH oder PWD}
  1264. Syntax: PATH oder PWD
  1265.  
  1266. Mit diesem Befehl wird das aktuelle Verzeichnis ausgegeben.
  1267.  
  1268. % ~~~~~~~~~~~~~~~
  1269. \subsection{POPD}
  1270. Syntax: POPD
  1271.  
  1272. Ein Pfad wird vom Pfadstapel geholt und
  1273. zum aktuellen Pfad gemacht. Siehe hierzu auch Abschnitt
  1274. \ref{pushd}.
  1275.  
  1276.  
  1277. % ~~~~~~~~~~~~~~~
  1278. \subsection{PRINTENV}
  1279. Syntax: PRINTENV
  1280.  
  1281. Gibt die Namen aller Environmentvariablen und ihren Inhalt auf dem Bildschirm 
  1282. aus.
  1283.  
  1284. % ~~~~~~~~~~~~~~~
  1285. \subsection{PROMPT}\label{prompt}
  1286. Syntax: PROMPT [{\em string\/}]
  1287.  
  1288. Nach dem Starten meldet sich der CLI normalerweise mit einem Prompt, der
  1289. aus dem aktuellen Verzeichnis, und einem `$>$'-Zeichen aufgebaut ist
  1290. ({\sf MS-DOS} l"asst gr"ussen). Mit dem PROMPT-Befehl kann nun dieser
  1291. Prompt umdefiniert werden. Der angegebene {\em string\/} wird unver"andert
  1292. als Prompt ausgegeben, bis auf einige speziellen Zeichenkombinationen,
  1293. die in Tabelle \ref{prompts} aufgef"uhrt sind.
  1294. \nopagebreak
  1295.  
  1296. \begin{table}
  1297. \begin{center}
  1298. \begin{tabular}{lcl}
  1299.          \&n    &:& aktuelles Laufwerk\\
  1300.          \&p    &:& aktueller Pfad\\
  1301.          \&d    &:& Datum\\
  1302.          \&t    &:& Zeit\\
  1303.          \&v    &:& Version\\
  1304.          \&g    &:& $>$\\
  1305.          \&l    &:& $<$\\
  1306.          \&q    &:& $=$\\
  1307.          \&h    &:& Backspace\\
  1308.          \&\_   &:& CR/LF\\
  1309.          \&e    &:& Escape\\
  1310.          \&\&   &:& Ampersand-zeichen\\
  1311.          \&m    &:& Dollar (MONEY)-Zeichen\\
  1312.          \&u    &:& $|$\\
  1313.      \&!    &:& aktuelle Zeilennummer\\
  1314. \end{tabular}
  1315. \end{center} \caption{\label{prompts} Sonderzeichen im Prompt}
  1316. \end{table}
  1317.  
  1318. Einige dieser Zeichen k"onnten nicht direkt eingegeben werden oder h"atten
  1319. f"ur den CLI eine besondere Bedeutung, so w"urde das `$>$' als Umlenkung
  1320. erkannt werden. Wenn daher im Prompt das `$>$' erscheinen soll, so wird an
  1321. seiner Stelle `{\tt \&g}' im Promptstring eingegeben.
  1322. Mit
  1323.  
  1324. \begin{verbatim}
  1325.   prompt &p&g
  1326. \end{verbatim}
  1327.  
  1328. wird immer der aktuelle Pfad, gefolgt vom `$>$'-Zeichen als Prompt
  1329. ausgegeben.
  1330.  
  1331. PROMPT ohne Argument stellt wieder den default Prompt ein, d.h.~so, wie er
  1332. nach dem Einschalten war.
  1333.  
  1334. % ~~~~~~~~~~~~~~~
  1335. \subsection{PUSHD}\label{pushd}
  1336. Syntax: PUSHD [{\em pathname\/}]
  1337.  
  1338. Bef"ordert den angegebenen Pfad auf den Pfadstapel.
  1339. Der Pfadstapel fa\ss{}t max.~16 Pfade. Wird PUSHD ohne
  1340. Argument aufgerufen, so wird der aktuelle Pfad abgelegt.
  1341.  
  1342. % ~~~~~~~~~~~~~~~
  1343. \subsection{RENAME oder REN}
  1344. Syntax: RENAME oder REN [-ns]\ {\em pathname\/} {\em filename}
  1345.  
  1346. Mit diesem Befehl kann eine oder mehrere Dateien umbenannt werden. Ist schon 
  1347. eine Datei gleichen Namens vorhanden, so wird gefragt, ob diese gel"oscht 
  1348. werden soll, oder ob die Quelldatei nicht umbenannt werden soll.
  1349. Beispiel:
  1350.  
  1351. \begin{verbatim}
  1352.   rename *.txt *.doc
  1353. \end{verbatim}
  1354.  
  1355. "andert die Endungen aller {\tt .TXT} Dateien im aktuellen Verzeichnis in 
  1356. {\tt .DOC} um.
  1357.  
  1358. Mit der Option `-n' ({\em no query\/}) wird die Nachfrage abgeschaltet, ob
  1359. eine im Zielpfad schon vorhandene Datei gleichen Namens gel"oscht werden
  1360. soll oder nicht.
  1361. Die \mbox{`-s'} Option ({\em silent\/}) schaltet die Vollzugsmeldung ab.
  1362.  
  1363.  
  1364. % ~~~~~~~~~~~~~~~
  1365. \subsection{REVIVE} \label{revive}
  1366. Syntax: REVIVE {\em command}
  1367.  
  1368. Mit diesem Befehl kann ein Befehl, der mit dem IGNORE-Befehl abgeschaltet
  1369. wurde, wieder {\em zum Leben erweckt\/} werden.
  1370.  
  1371. % ~~~~~~~~~~~~~~~
  1372. \subsection{RM}
  1373. Syntax: RM [-qs]\ {\em filename\/} [{\em filename\/}]
  1374.  
  1375. Siehe dazu DEL.
  1376.  
  1377. % ~~~~~~~~~~~~~~~
  1378. \subsection{RMDIR}
  1379. Syntax: RMDIR [-r$\mid$-a] {\em pathname}
  1380.  
  1381. Mit diesem Befehl kann ein Ordner gel"oscht werden. Dabei mu\ss\ der Ordner
  1382. mit komplettem Pfad angegeben werden.
  1383. Der Order mu\ss\ im Normalfall leer sein. Ist sich der Benutzer sicher, da\ss\
  1384. ein kompletter Ordner gel"oscht werden soll, so kann er unter Angabe der
  1385. Option `-r' ({\em recursive\/}) oder `-a' ({\em all\/}) jeden beliebigen
  1386. Ordner l"oschen.
  1387.  
  1388. % ~~~~~~~~~~~~~~~
  1389. \subsection{SETENV}
  1390. Syntax: SETENV {\em varname\/} [{\em string\/}]
  1391.  
  1392. Mit diesem Befehl kann einer Environmentvariablen ein neuer Inhalt,
  1393. {\em string\/}, zugewiesen werden. Name und Inhalt sind dabei entweder durch ein 
  1394. Leerzeichen oder ein `$=$'-Zeichen getrennt. Man kann nat"urlich auch ohne
  1395. SETENV einer Variablen einen Inhalt zuweisen. 
  1396.  
  1397. \begin{verbatim}
  1398.   setenv TEMP Hallo
  1399. \end{verbatim}
  1400.  
  1401. und
  1402.  
  1403. \begin{verbatim}
  1404.   TEMP=Hallo
  1405. \end{verbatim}
  1406.  
  1407. sind also vollkommen gleichwertig. Wird SETENV ohne Parameter aufgerufen, so 
  1408. werden alle vorhandenen Variablen ausgegeben (genau wie beim PRINTENV-Befehl).
  1409.  
  1410. % ~~~~~~~~~~~~~~~
  1411. \subsection{SLEEP}
  1412. Syntax: SLEEP
  1413.  
  1414. Mit diesem Befehl l"asst sich der Bildschirm dunkelschalten. Dies ist sinnvoll,
  1415. wenn man die Arbeit mit dem CLI f"ur l"angere Zeit unterbricht, aber den
  1416. Rechner bzw. Monitor nicht abschalten m"ochte. Ein zuvor eingegebener SLEEP
  1417. Befehl schont dann die Bildr"ohre des Monitors. Der Schirm wird durch
  1418. Bet"atigen einer beliebigen Taste wieder eingeschaltet.
  1419.  
  1420. % ~~~~~~~~~~~~~~~
  1421. \subsection{STEP}
  1422. Syntax: STEP {\em step\_rate}
  1423.  
  1424. Der STEP-Befehl stellt eine neue Steprate f"ur die beiden
  1425. Laufwerke {\tt A:} und {\tt B:} ein. Erlaubte Werte f"ur {\em step\_rate\/}
  1426. sind: 2, 3, 6 und 12. Die Angabe erfolgt in Millisekunden.
  1427.  
  1428. % ~~~~~~~~~~~~~~~
  1429. \subsection{TEE}
  1430. Syntax: TEE [-a] {\em filename}
  1431.  
  1432. Der Inhalt einer Pipe wird in eine Datei {\em filename} abgezweigt, die
  1433. Funktion der Pipe dadurch nicht beeintr"achtigt. Mit der `-a' Option wird
  1434. an eine bestehende Datei angeh"angt.
  1435.  
  1436. % ~~~~~~~~~~~~~~~
  1437. \subsection{TERM}
  1438. Syntax: TERM
  1439.  
  1440. TERM aktiviert den Terminalmodus. Dieser entspricht dem des von Atari
  1441. gelieferten Emulator-ACC's, welches einen einfachen {\sf DEC} VT-52
  1442. Terminalemulator zur Kommunikation "uber die serielle Schnittstelle darstellt.
  1443. Alle von der Tastatur eingegebenen Zeichen werden also an die serielle 
  1444. Schnittstelle gesendet. Ggf.~mu\ss\ die Baudrate mit dem BAUD-Befehl
  1445. eingestellt werden. Nach dem Einschalten befindet sich der Rechner
  1446. normalerweise im 9600 Baud Modus. Verlassen wird der Terminalmodus mit 
  1447. der {\sf HELP} oder {\sf UNDO} Taste. Bei Remotebetrieb ist der {\sf TERM}
  1448. Befehl nicht sinnvoll, und ist daher deaktiviert.
  1449.  
  1450. % ~~~~~~~~~~~~~~~
  1451. \subsection{TIME}
  1452. Syntax: TIME [-s]
  1453.  
  1454. Der TIME-Befehl dient dazu, die Systemzeit abzufragen oder zu stellen. Nach 
  1455. Eingabe des Befehls wird die aktuelle Zeit ausgegeben. Dann kann eine neue
  1456. Zeit eingegeben werden. Ist die eingegebene Zeit ung"ultig oder wird einfach
  1457. nur die {\sf RETURN}-Taste bet"atigt, so bleibt die urspr"ungliche Zeit
  1458. unver"andert. Bei Angabe der \mbox{`-s'} Option ({\em set\/}) wird die aktuelle Zeit
  1459. in die Environmentvariable {\sf TIME} geschrieben.
  1460.  
  1461. % ~~~~~~~~~~~~~~~
  1462. \subsection{TOUCH}
  1463. Syntax: TOUCH [-s] \{{\em filename\/}\}
  1464.  
  1465. TOUCH aktualisiert das Dateidatum also, das Erstellungsdatum einer Datei.
  1466. Die \mbox{`-s'} Option ({\em silent\/}) schaltet die Vollzugsmeldung ab.
  1467.  
  1468. % ~~~~~~~~~~~~~~~
  1469. \subsection{TYPE}
  1470. Syntax: TYPE {\em filename}
  1471.  
  1472. Gibt die angegebene Datei aus. Die Ausgabe kann z.B.~in eine Datei
  1473. umgelenkt werden (wie bei den meisten anderen Befehlen auch).
  1474.  
  1475. % ~~~~~~~~~~~~~~~
  1476. \subsection{UNALIAS}
  1477. Syntax: UNALIAS {\em name}
  1478.  
  1479. Ein Eintrag wird aus der ALIAS-Liste entfernt. Bewirkt dasselbe wie
  1480. ALIAS mit der `-d'-Option.
  1481.  
  1482. % ~~~~~~~~~~~~~~~
  1483. \subsection{UNHIDE}
  1484. Syntax: UNHIDE [-s] \{{\em filename\/}\}
  1485.  
  1486. Bei den angegebenen Dateien werden die Attribute {\em hidden\/} und {\em system\/}
  1487. gel"oscht.
  1488. Die \mbox{`-s'} Option ({\em silent\/}) schaltet die Vollzugsmeldung ab.
  1489.  
  1490. % ~~~~~~~~~~~~~~~
  1491. \subsection{UNLOCK}
  1492. Syntax: UNLOCK [-s] \{{\em filename\/}\}
  1493.  
  1494. Bei den angegebenen Dateien wird das {\em read-only\/} Attribut gel"oscht.
  1495. Die \mbox{`-s'} Option ({\em silent\/}) schaltet die Vollzugsmeldung ab.
  1496.  
  1497. % ~~~~~~~~~~~~~~~
  1498. \subsection{VERSION oder VER}
  1499. Syntax: VERSION oder VER
  1500.  
  1501. Gibt die Versionsnummer des CLI und {\sf TOS}-ROMs aus.
  1502.  
  1503. % ~~~~~~~~~~~~~~~
  1504. \subsection{WAIT}
  1505. Syntax: WAIT [-s$\mid$-t {\em time\/}$\mid$-d {\em date\/}]
  1506.  
  1507. Dieser Befehl gibt eine englische Meldung aus und wartet auf Bet"atigung
  1508. der {\sf RETURN}-Taste.
  1509. WAIT wird sinnvollerweise nur in Batchdateien verwendet. Ist die englische
  1510. Meldung in einer Batchabarbeitung st"orend, so kann diese auch mit der
  1511. \mbox{`-s'} Option ({\em silent\/}) unterdr"uckt werden.
  1512. Bei Angabe der \mbox{`-t'} bzw.~\mbox{'-d'} Option wartet der CLI bis zur angegebenen
  1513. Uhrzeit bzw.~zum angegebenen Datum. Das Format ist dasselbe wie bei den
  1514. Befehlen TIME und DATE.
  1515.  
  1516. % ~~~~~~~~~~~~~~~
  1517. \subsection{WC}
  1518. Syntax: WC [{\em filename\/}]
  1519.  
  1520. Mit WC (Word Count) werden die Zeichen, Zeilen und Worte einer Textdatei 
  1521. gez"ahlt. Wird kein Dateiname angegeben, bezieht WC seine Eingabe von
  1522. `stdin'. Damit kann WC seine Eingabe durch eine Pipe von einem anderen
  1523. Programm beziehen.
  1524.  
  1525. % ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  1526. \end{document}
  1527.  
  1528. # E O F #
  1529.  
  1530.  
  1531.